package models;
import java.util.ArrayList;
import java.util.Random;
public class TaskGenerator {
private int minServingTime;
private int maxServingTime;
private int minArrivalTime;
private int maxArrivalTime;
private int simulationTime;
private Random rand = new Random();
private int taskCount = 0;
public TaskGenerator(int minServingTime, int maxServingT, int minArT, int maxArT, int simT) {
this.simulationTime = simT;
this.maxArrivalTime = maxArT;
this.maxServingTime = maxServingT;
this.minServingTime = minServingTime;
this.minArrivalTime = minArT;
}
public ArrayList<Task> createTasks() {
ArrayList<Task> tasks = new ArrayList<Task>();
for (int currentCycle = 0; currentCycle < simulationTime; currentCycle++) {
int arrivingTime = minArrivalTime
+ ((maxArrivalTime == minArrivalTime) ? 0 : rand.nextInt(maxArrivalTime - minArrivalTime));
int servintTime = getMinServingTime() + ((getMaxServingTime() == getMinServingTime()) ? 0
: rand.nextInt(getMaxServingTime() - getMinServingTime()));
tasks.add(new Task(taskCount, servintTime, arrivingTime));
taskCount++;
}
return tasks;
}
public int getMinServingTime() {
return minServingTime;
}
public void setMinServingTime(int minServingTime) {
this.minServingTime = minServingTime;
}
public int getMaxServingTime() {
return maxServingTime;
}
public void setMaxServingTime(int maxServingTime) {
this.maxServingTime = maxServingTime;
}
public int getMinArrivalTime() {
return minArrivalTime;
}
public void setMinArrivalTime(int minArrivalTime) {
this.minArrivalTime = minArrivalTime;
}
public int getMaxArrivalTime() {
return maxArrivalTime;
}
public void setMaxArrivalTime(int maxArrivalTime) {
this.maxArrivalTime = maxArrivalTime;
}
}